/**
 * @projectName 高校就业网
 * @package com.kzj.CollegeEmploymentNetwork.model
 * @className com.kzj.CollegeEmploymentNetwork.model.WorkExperience
 * @copyright Copyright 2025 Thunisoft, Inc. All rights reserved.
 */
package com.kzj.CollegeEmploymentNetwork.model;

import javax.persistence.Column;
import javax.persistence.Table;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import com.kzj.CollegeEmploymentNetwork.common.BaseEntity;
import javax.validation.constraints.Size;
import com.kzj.CollegeEmploymentNetwork.validate.Validate;
import java.time.LocalDate;
import org.springframework.format.annotation.DateTimeFormat;
import com.alibaba.fastjson.annotation.JSONField;
import com.thunisoft.artery.data.annotation.CodeType;


/**
 * WorkExperience
 *
 * @description 工作经历表实体
 * @author kzj
 * @date 2025年01月20日 23:11:54
 * @version 1.0.0
 **/
@ApiModel("工作经历表")
@Table(name="db_recruit.t_work_experience")    
@Getter
@Setter
@ToString
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class WorkExperience extends BaseEntity{
    
    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1L;
    
    /**
     * 外键：应聘者
     */
    @ApiModelProperty("外键：应聘者")
    @Column(name = "c_bh_candidate", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "外键：应聘者的最大长度为32")
    private String bhCandidate;

    /**
     * 公司名称
     */
    @ApiModelProperty("公司名称")
    @Column(name = "c_company_name", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "公司名称的最大长度为32")
    private String companyName;

    /**
     * 所属行业
     */
    @ApiModelProperty("所属行业")
    @Column(name = "n_industy")
    @CodeType("cy_016")
    private Integer industy;

    /**
     * 入职时间
     */
    @ApiModelProperty("入职时间")
    @Column(name = "d_entry_date", columnDefinition = "date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private LocalDate entryDate;

    /**
     * 离职时间
     */
    @ApiModelProperty("离职时间")
    @Column(name = "d_relaxation_date", columnDefinition = "date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private LocalDate relaxationDate;

    /**
     * 职位
     */
    @ApiModelProperty("职位")
    @Column(name = "n_job")
    @CodeType("cy_017")
    private Integer job;

    /**
     * 所属部门
     */
    @ApiModelProperty("所属部门")
    @Column(name = "c_depart", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "所属部门的最大长度为32")
    private String depart;

    /**
     * 工作内容
     */
    @ApiModelProperty("工作内容")
    @Column(name = "c_work_content", columnDefinition = "varchar(900)")
    @Size(max = 900, groups = {Validate.class}, message = "工作内容的最大长度为900")
    private String workContent;

    /**
     * 工作业绩
     */
    @ApiModelProperty("工作业绩")
    @Column(name = "c_work_achievenment", columnDefinition = "varchar(900)")
    @Size(max = 900, groups = {Validate.class}, message = "工作业绩的最大长度为900")
    private String workAchievenment;

}